home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD020b.dsk / VOCABULARY FLASH CARDS.bas < prev    next >
BASIC Source File  |  2003-06-12  |  6KB  |  161 lines

  1. 10 D$ =  CHR$(4)
  2. 20  GOSUB 2000: DIM A$(RE% +100),B$(RE% +100),A%(RE% +100),B%(RE% +100): GOSUB 2600
  3. 30  REM  ** RE%= NUMBER OF RECORDS, A$()=WORD,B$()=DEFINITIONS
  4. 100  HOME 
  5. 110  PRINT "SELECT ONE: "
  6. 120  PRINT : PRINT "   1.  INPUT NEW WORDS"
  7. 121  PRINT : PRINT "   2.  FLASH CARDS"
  8. 122  PRINT : PRINT "   3.  REVIEW ALL WORDS"
  9. 123  PRINT : PRINT "   4.  TYPE A WORD LIST"
  10. 124  PRINT : PRINT "   5.  DELETE WORDS FROM LIST"
  11. 125  PRINT : PRINT "   6.  END"
  12. 150  HTAB 2: VTAB 20: PRINT "CHOICE >> ";
  13. 155 NH = 6:NL = 1: GOSUB 546
  14. 160  ON V GOTO 3000,4000,5000,6000,8000,199
  15. 199  END 
  16. 499  REM  ** PRESS ANY KEY
  17. 500  VTAB 23: INVERSE : PRINT "        PRESS ANY KEY TO CONTINUE...    ";: NORMAL : WAIT  -16384,128,1: POKE  -16368,0: RETURN 
  18. 501  REM  ** ONLY Y/N
  19. 502  PRINT S$;" (Y/N)? ";: GET A$: PRINT A$: IF A$ < >"Y"  AND A$ < >"N"  THEN 501
  20. 503  RETURN 
  21. 545  REM  ** INPUT W/IN RANGE NH TO NL
  22. 546  IF   NOT NH  THEN NH = 9
  23. 547 VT =  PEEK(37):HT =  PEEK(36): INPUT V$:V =  VAL(V$): IF V < = NH  AND V > = NL  THEN 549
  24. 548  VTAB VT +2: INVERSE : PRINT " MUST BE BETWEEN ";NL;" AND ";NH;" ": NORMAL : FOR X = 1 TO 1600: NEXT : VTAB VT +2: CALL  -868: VTAB VT +1: HTAB HT +1: GOTO 547
  25. 549  RETURN 
  26. 579  REM  ** NO DUPLICATE RANDOMS
  27. 580  FOR I = 1 TO N
  28. 581 A%(I) =  INT(( RND(1) *N) +1)
  29. 582 X = A%(I): IF B%(X) = 1 GOTO 581
  30. 583 B%(X) = 1
  31. 584  PRINT "THINKING": NEXT I: PRINT : PRINT "OK, I'M READY."
  32. 585  RETURN 
  33. 604  REM  ** OUTPUT ST$ WORD BY WORD
  34. 605  IF  POS(0) + LEN(ST$) <40  THEN  PRINT ST$: RETURN 
  35. 606  FOR II = 40 - POS(0) TO 1  STEP  -1: IF  MID$ (ST$,II,1) = " "  THEN  PRINT  LEFT$(ST$,II -1):ST$ =  MID$ (ST$,II +1):II = 1: GOTO 608
  36. 607  IF II = 1  THEN  PRINT 
  37. 608  NEXT II
  38. 609  IF  LEN(ST$) < = 40  THEN  PRINT ST$: RETURN 
  39. 610  GOTO 605
  40. 611  RETURN 
  41. 999  REM  ** STORE DATA
  42. 1000  PRINT D$;"OPEN VOCAB,L150"
  43. 1010  PRINT D$;"READ VOCAB,R0"
  44. 1020  INPUT RE%
  45. 1030  FOR J = 1 TO I
  46. 1040  PRINT D$;"WRITE VOCAB,R";RE% +J
  47. 1050  PRINT A$(J): PRINT B$(J)
  48. 1060  NEXT J
  49. 1070  PRINT D$;"WRITE VOCAB,R0"
  50. 1080  PRINT RE% +I
  51. 1090  PRINT D$;"CLOSE VOCAB"
  52. 1100  GOTO 100
  53. 1999  REM  ** READ DATA
  54. 2000  PRINT D$;"OPEN VOCAB,L150"
  55. 2010  PRINT D$;"READ VOCAB,R0"
  56. 2020  INPUT RE%
  57. 2030  PRINT D$;"CLOSE VOCAB"
  58. 2040  RETURN 
  59. 2100  PRINT D$;"OPEN VOCAB,L150"
  60. 2110  RETURN 
  61. 2500  PRINT D$;"READ VOCAB,R"X
  62. 2510  INPUT A$(I),B$(I)
  63. 2520  RETURN 
  64. 2600  PRINT D$;"CLOSE VOCAB"
  65. 2610  RETURN 
  66. 2999  REM  ** INPUT NEW WORDS
  67. 3000 I = 1
  68. 3005  HOME : INVERSE : PRINT "WORD ";I: NORMAL : PRINT 
  69. 3006  PRINT "WHEN YOU ARE FINISHED, ENTER '.' AS THE WORD.": PRINT : PRINT 
  70. 3010  INPUT "WORD:  ";A$(I)
  71. 3020  IF A$(I) = "."  THEN I = I -1: GOTO 1000
  72. 3030  PRINT : INPUT "MEANING: ";B$(I)
  73. 3040  PRINT :S$ = "IS THIS CORRECT?  ": GOSUB 501
  74. 3050  IF A$ = "N"  THEN  PRINT : PRINT : GOTO 3010
  75. 3060 I = I +1: GOTO 3005
  76. 3999  REM   ** FLASH CARDS
  77. 4000  HOME 
  78. 4010  GOSUB 2000
  79. 4020  PRINT "THERE ARE NOW ";RE%;" WORDS IN THE FILE.": PRINT : PRINT "HOW MANY WORDS WOULD YOU LIKE TO        REVIEW?  ";:NH = RE%:NL = 1: GOSUB 546:RV% = V
  80. 4030 N = RE%: GOSUB 580
  81. 4035  GOSUB 2100
  82. 4040  FOR I = 1 TO RV%:X = A%(I): GOSUB 2500: NEXT I
  83. 4050  GOSUB 2600
  84. 4060  FOR I = 1 TO RV%
  85. 4070  HOME : INVERSE : PRINT "WORD ";I;" OF ";RV%: NORMAL 
  86. 4080  VTAB 5: INVERSE : PRINT "WORD:": NORMAL : PRINT : PRINT "    ";A$(I)
  87. 4090  GOSUB 500
  88. 4100  VTAB 10: INVERSE : PRINT "MEANING:": NORMAL : PRINT : POKE 32,5: HTAB 6:ST$ = B$(I): GOSUB 605: POKE 32,0
  89. 4110  GOSUB 500
  90. 4120  NEXT I
  91. 4130  GOTO 100
  92. 5000  HOME 
  93. 5010  GOSUB 2000
  94. 5040  GOSUB 2100
  95. 5050  FOR I = 1 TO RE%:X = I: GOSUB 2500: NEXT I
  96. 5060  GOSUB 2600
  97. 5070  FOR I = 1 TO RE%
  98. 5080  HOME : INVERSE : PRINT "WORD ";I;" OF ";RE%: NORMAL 
  99. 5090  VTAB 5: INVERSE : PRINT "WORD:": NORMAL : PRINT : PRINT "    ";A$(I)
  100. 5100  GOSUB 500
  101. 5110  VTAB 10: INVERSE : PRINT "MEANING:": NORMAL : PRINT : POKE 32,5: HTAB 6:ST$ = B$(I): GOSUB 605: POKE 32,0
  102. 5120  GOSUB 500
  103. 5130  NEXT I
  104. 5140  GOTO 100
  105. 5999  REM  ** TYPE A WORD LIST
  106. 6000  HOME 
  107. 6010  GOSUB 2000
  108. 6020  PRINT "HOW MANY WORDS DO YOU WANT              TYPED? ";:NH = RE%:NL = 1: GOSUB 545:TY% = V
  109. 6030  PRINT : PRINT : PRINT "DO YOU WANT": PRINT : PRINT "     1.  A RANDOM LIST": PRINT : PRINT "     2.  IN ORDER FROM THE FILE?  ";:NH = 2:NL = 1: GOSUB 545: PRINT : PRINT 
  110. 6040  ON V GOTO 6050,6100
  111. 6050  HOME : HTAB 5: VTAB 10: INVERSE : PRINT "SELECTING THE WORDS.": NORMAL :N = RE%: GOSUB 580
  112. 6055  HOME : HTAB 5: VTAB 10: INVERSE : PRINT "READING THE WORDS.": NORMAL 
  113. 6060  GOSUB 2100
  114. 6070  FOR I = 1 TO TY%:X = A%(I): GOSUB 2500: NEXT I
  115. 6080  GOSUB 2600
  116. 6090  GOTO 6200
  117. 6100  PRINT : PRINT : PRINT "WHAT WORD SHOULD I START WITH?  ";:NH = RE% -TY%:NL = 1: GOSUB 545:FI% = V -1
  118. 6105  HOME : HTAB 5: VTAB 10: INVERSE : PRINT "READING THE WORDS.": NORMAL 
  119. 6110  GOSUB 2100
  120. 6120  FOR I = 1 TO TY%:X = FI% +I: GOSUB 2500: NEXT I
  121. 6130  GOSUB 2600
  122. 6140  GOTO 6200
  123. 6200  PRINT D$;"PR#1": PRINT "<CTRL-I>80N"
  124. 6210  FOR I = 1 TO TY%
  125. 6220  FOR J = 25 TO  LEN(A$(I)) +1  STEP  -1:A$(I) = A$(I) +" ": NEXT J
  126. 6230  PRINT A$(I);
  127. 6240  IF  LEN(B$(I)) <55  THEN  PRINT B$(I): GOTO 6300
  128. 6250 X = 55
  129. 6260  IF  MID$ (B$(I),X,1) < >" "  THEN X = X -1: GOTO 6260
  130. 6270  PRINT  LEFT$(B$(I),X -1):B$(I) =  MID$ (B$(I),X +1)
  131. 6280  IF  LEN(B$(I)) <55  THEN  PRINT  SPC( 25);B$(I): GOTO 6300
  132. 6290  PRINT  SPC( 25);: GOTO 6300
  133. 6300  PRINT : NEXT I
  134. 6310  PRINT D$;"PR#0"
  135. 6320  GOTO 100
  136. 8000  HOME 
  137. 8005  FOR I = 1 TO RE%:B%(I) = 0: NEXT I
  138. 8010  GOSUB 2000
  139. 8020  GOSUB 2100
  140. 8030  FOR I = 1 TO RE%:X = I: GOSUB 2500: NEXT I
  141. 8040  GOSUB 2600
  142. 8050  FOR I = 1 TO RE%
  143. 8060  HOME : INVERSE : PRINT "WORD ";I;" OF ";RE%: NORMAL 
  144. 8070  VTAB 5: INVERSE : PRINT "WORD:": NORMAL : PRINT : PRINT "    ";A$(I)
  145. 8080  GOSUB 500
  146. 8090  VTAB 10: INVERSE : PRINT "MEANING:": NORMAL : PRINT : POKE 32,5: HTAB 6:ST$ = B$(I): GOSUB 605: POKE 32,0
  147. 8095  PRINT : PRINT :S$ = "SHOULD THIS BE REMOVED?": GOSUB 502: IF A$ = "Y"  THEN B%(I) = 1
  148. 8100  GOSUB 500
  149. 8110  NEXT I
  150. 8200  HOME : INPUT "WHAT IS TODAY'S DATE?                     (MM/DD/YY)   ";DA$
  151. 8210  PRINT D$;"RENAME VOCAB,VOCAB";DA$
  152. 8250  PRINT D$;"OPEN VOCAB,L150"
  153. 8260 J = 0: FOR I = 1 TO RE%
  154. 8270  IF B%(I) = 1  THEN 8300
  155. 8280 J = J +1: PRINT D$;"WRITE VOCAB,R";J
  156. 8290  PRINT A$(I): PRINT B$(I)
  157. 8300  NEXT I
  158. 8310  PRINT D$;"WRITE VOCAB,R0"
  159. 8320  PRINT J
  160. 8330  PRINT D$;"CLOSE VOCAB"
  161. 8340  GOTO 100